//MINI UI解析
mini.parse();

/**
 * 发货单详情处理器类
 */
function InvoiceDetailHandler() {

}

//实例化全局订单处理器
InvoiceDetailHandler.instance = new InvoiceDetailHandler();
InvoiceDetailHandler.mgrData = new OrderMgrData();
InvoiceDetailHandler.hiddenForm = new mini.Form("hiddenForm");
InvoiceDetailHandler.hiddenForm.loadingMsg = InvoiceDetailHandler.mgrData.operatingMsg;

//获得订单流程处理控件对象
InvoiceDetailHandler.quFHBtn = mini.get("order_fhd_qufh");

//获得订单详情各面板对象
InvoiceDetailHandler.baseInfoPanel = mini.get("baseInfoPanel");
InvoiceDetailHandler.consigneePanel = mini.get("consigneePanel");
InvoiceDetailHandler.goodsPanel = mini.get("goodsPanel");
InvoiceDetailHandler.operatingPanel = mini.get("operatingPanel");
InvoiceDetailHandler.logingPanel = mini.get("logingPanel");

//获得订单详情各表格对象
InvoiceDetailHandler.goodsListGrid = mini.get("goodsListGrid");
InvoiceDetailHandler.orderLogGrid = mini.get("orderLogGrid");

//获得操作备注表格对象
InvoiceDetailHandler.$remarkTab = $("#remarkTab");
InvoiceDetailHandler.$lolOremark = $("#lolOremark");

//发货单号
InvoiceDetailHandler.$boiInvnum = $("#boiInvnum");

//定义发货单详情页功能权限字符编码JSON		
InvoiceDetailHandler.purJsonIDetail ={
		quFHBtn : "order_fhd_qufh"
};

/**
 * 根据订单在不同状态下订制的权限编码数组展示功能权限按钮
 * @param {} purArray
 */
InvoiceDetailHandler.loadPurviewBtn = function(purArray) {
	var userArr = MiniuiTools.isHasPurview(purArray);
	
	for (var i = 0; i < userArr.length; i++) {
		var purviewBtn = mini.get(purArray[i]);
		
		if(purviewBtn){
			purviewBtn.setVisible(userArr[i]);
		}
	}
};

/**
 * 清空操作备注文本域
 */
InvoiceDetailHandler.clearLolOremark = function(){
	InvoiceDetailHandler.$lolOremark.val("");
}

/**
 * 初始化页面控件使用状态
 */
InvoiceDetailHandler.initPageCtlStatus = function(){
	InvoiceDetailHandler.quFHBtn.setVisible(false);
}

/**
 * 根据订单信息重新设置页面控件使用状态
 * 
 * 订单状态：（0-未确认，1-已确认，2-已取消，3-已结单，4-已失效）
 * 支付状态：（0-未付款，1-已付款，2-已退款）
 * 配送状态：（0-未配送，1-配货中，2-发货中，3-已发货，4-已收货，5-已退货，6-无法联系）
 * 
 * 5、发货单生成完成时：[已确认，已付款，发货中]
 * @param {} info
 */
InvoiceDetailHandler.settingPageCtlStatus = function(info){
	//存储订单在不同状态下订制的功能按钮字符编码
	var purArrayInvDetail = new Array();
	
	if(info.boiShip == 2){
		purArrayInvDetail.push(InvoiceDetailHandler.purJsonIDetail.quFHBtn);
		//加载订制的功能权限按钮
		InvoiceDetailHandler.loadPurviewBtn(purArrayInvDetail);
	}else{
		InvoiceDetailHandler.operatingPanel.hide();
	}
}

/**
 * 加载区域名称处理程序
 * @param {} regionId
 * @param {} level
 */
InvoiceDetailHandler.loadRegionName = function(regionId, level){
	$.ajax({
		url : InvoiceDetailHandler.mgrData.loadRegionInfoUrl(regionId),
		cache : false,
		dataType : 'json',
		success : function(text) {
			if(text != null && text != ""){
				if(level == 1){
					$("#boiCountry").html("[" + text.bdrName);
				}else if(level == 2){
					$("#boiProvince").html(text.bdrName);
				}else if(level == 3){
					$("#boiCity").html(text.bdrName);
				}else if(level == 4){
					$("#boiDistrict").html(text.bdrName + "]");
				}
			}
		},
		error: function(){
			MiniuiTools.miniError("系统提示","数据加载出错！");
		}
	})
}

/**
 * 加载订单信息
 */
InvoiceDetailHandler.loadOrderInfo = function(){
	$.ajax({
		url : InvoiceDetailHandler.mgrData.loadOrderInfoUrl(__boiId),
		cache : false,
		dataType : 'json',
		success : function(text) {
			if(text != ""){
				InvoiceDetailHandler.settingPageCtlStatus(text);
				
				var boiStimeStr = "未发货";
				if(text.boiStime != null && text.boiStime != ""){
					boiStimeStr = XMAppUtils.changeDateToDateTimeStr(text.boiStime, false);
				}
				
				var boiInvnum = "";
				if(text.boiInvnum != null && text.boiInvnum != ""){
					boiInvnum = text.boiInvnum;
				}
				
				if(text.boiShip != 2){
					InvoiceDetailHandler.$boiInvnum.css({"border": "0"});
				}
				
				//基本信息
				$("#boiInvsernum").html(text.boiInvsernum);
				$("#boiStime").html(boiStimeStr);
				$("#boiOsn").html(text.boiOsn);
				$("#boiDeliverymode").html(text.boiDeliverymode);
				$("#boiOtime").html(XMAppUtils.changeDateToDateTimeStr(text.boiOtime, false));
				$("#boiSpay").html(parseFloat(text.boiSpay).toFixed(2));
				InvoiceDetailHandler.$boiInvnum.val(boiInvnum);
				
				//收货人信息
				$("#boiConsignee").html(text.boiConsignee);
				$("#boiPhone").html(text.boiPhone);
				$("#boiMobile").html(text.boiMobile);
				$("#boiDetail").html(text.boiDetail);
				$("#boiZipcode").html(text.boiZipcode);
				$("#boiUremark").html(text.boiUremark);
				$("#boiBest").html(text.boiBest);
				InvoiceDetailHandler.loadRegionName(text.boiCountry, 1);
				InvoiceDetailHandler.loadRegionName(text.boiProvince, 2);
				InvoiceDetailHandler.loadRegionName(text.boiCity, 3);
				InvoiceDetailHandler.loadRegionName(text.boiDistrict, 4);
			}
		},
		error: function(){
			MiniuiTools.miniError("系统提示","数据加载出错！");
		}
	});
}

/**
 * 加载用户信息
 */
InvoiceDetailHandler.loadMemberInfo = function(){
	$.ajax({
		url : InvoiceDetailHandler.mgrData.loadMemberInfoUrl(__bmbId),
		cache : false,
		dataType : 'json',
		success : function(text) {
			var bmbNick = "匿名用户";
			
			if(text != null && text != ""){
				bmbNick = text.bmbNick; 
			}

			// 订购人
			$("#bmbNick").html(bmbNick);
		},
		error: function(){
			MiniuiTools.miniError("系统提示","数据加载出错！");
		}
	});
}

/**
 * 加载商品订购列表
 */
InvoiceDetailHandler.loadOrderGoods = function(){
	InvoiceDetailHandler.goodsListGrid.url = InvoiceDetailHandler.mgrData.loadOrderGoodsUrl(__boiId);
	InvoiceDetailHandler.goodsListGrid.load();
}

/**
 * 加载订单日志列表
 */
InvoiceDetailHandler.loadOrderLogs = function(){
	InvoiceDetailHandler.orderLogGrid.url = InvoiceDetailHandler.mgrData.loadOrderLogsUrl(__boiId);
	InvoiceDetailHandler.orderLogGrid.load();
}

/**
 * 初始化数据
 */
InvoiceDetailHandler.init = function(){
	InvoiceDetailHandler.initPageCtlStatus();
	InvoiceDetailHandler.loadOrderInfo();
	InvoiceDetailHandler.loadMemberInfo();
	InvoiceDetailHandler.loadOrderGoods();
	InvoiceDetailHandler.loadOrderLogs();
};  

InvoiceDetailHandler.init();

/**
 * 重载相关区域
 */
InvoiceDetailHandler.reloadRelation = function(){
	//重新设置页面控件以便重新订制
	InvoiceDetailHandler.initPageCtlStatus();
	//刷新基本信息
	InvoiceDetailHandler.loadOrderInfo();
	//刷新操作日志
	InvoiceDetailHandler.loadOrderLogs();
	//清空操作日志文本域
	InvoiceDetailHandler.clearLolOremark();
	//隐藏操作日志文本框
	InvoiceDetailHandler.operatingPanel.hide();
}

/**
 * 订单状态处理程序
 * @param {} disposeType
 */
InvoiceDetailHandler.disposeOrder = function(disposeType){
	var lolOremark = InvoiceDetailHandler.$lolOremark.val();
	var boiInvnum = InvoiceDetailHandler.$boiInvnum.val();

	if(/^$/.test(boiInvnum.trim())){
		MiniuiTools.miniWarning("系统提示", "请填写发货单号！");
		InvoiceDetailHandler.$boiInvnum.focus();
		return;
	}
	
	$.ajax({
        url: InvoiceDetailHandler.mgrData.disposeOrderUrl(),
        type: "post",
        dataType : 'json',
        data: {
    		boiId: __boiId, 
    		disposeType: disposeType,
    		operateUType: gbOperateUType,
    		operateUser: gbOperateUser,
    		operateIp: gbOperateIp, 
    		boiInvnum: boiInvnum,
    		lolOremark: lolOremark
        },
        cache: false,
        success: function (text) {
        	InvoiceDetailHandler.reloadRelation();
        },
        error: function (jqXHR, textStatus, errorThrown) {
        	MiniuiTools.miniError("系统提示", "操作失败！" + jqXHR.responseText);
        },
		complete : function(){
			InvoiceDetailHandler.hiddenForm.unmask();
		}
    });
    
    InvoiceDetailHandler.hiddenForm.loading();
}

/**
 * 返回按钮点击事件处理程序
 */
InvoiceDetailHandler.returnOrderList = function(){
	window.location.href = "invoiceList.jsp";
}

/**
 * 商品列表表格绘画事件处理程序
 */
InvoiceDetailHandler.goodsListGrid.on("drawcell", function(e) {
	 var record = e.record;
     var column = e.column;
     var value = e.value;
     var innerHtml = "";
	
	switch (column.field) {
		case "bogName":
		{
			if (value != ""){
				innerHtml = value + "[" + record.bgbName + "]";
			}
			break;
		}
	}
	
	if (innerHtml) e.cellHtml = innerHtml;
});

/**
 * 日志列表表格绘画事件处理程序
 */
InvoiceDetailHandler.orderLogGrid.on("drawcell", function(e) {
	 var record = e.record;
     var column = e.column;
     var value = e.value;
     var innerHtml = "";
	
	switch (column.field) {
		case "lolTime":
		{
			if (value != ""){
				innerHtml = XMAppUtils.changeDateToDateTimeStr(value);
			}
			break;
		}
	}
	
	if (innerHtml) e.cellHtml = innerHtml;
});
